跳到主要内容

自建 Anki 同步服务器

3 分钟阅读

前言

在使用 Anki 官方的同步服务器时,时常遇到连接超时以及同步速度过慢的情况,好在从官方文档 sync-server 中可知,从 2.1.57+ 版本开始的桌面版 Anki 已经内置了同步服务器,只需要简单的几行命令就可以创建一个私人同步服务。

开始

下载桌面版 Anki

Github 仓库

考虑到市面上大部分服务器都基于 Linux 发行版所以该教程也只介绍如何在 Linux 系统中进行部署

首先检查自己的 Linux 系统版本以及CPU架构

uname -a

根据终端输出系统版本及架构的选择最适合自己的安装包

在这里我们选 linux-qt5.tar.zst 为后缀的压缩包来安装,可以看到文件格式是 tar.zst,这是 Facebook推出的一种无损压缩格式,全称 Zstandard (ZSTD) ,压缩率更大速度更快,但是需要安装 ZSTD 才能解压。

考虑到该教程主要介绍如何搭建专属于自己的anki服务器,所以不展开讲述 ZSTD 安装相关步骤。

先下载 anki-2.1.57-linux-qt5.tar.zst 或者以上版本的压缩包

我们就先在 windows 系统的电脑上先解压 tar.zst 格式的资源,再用tar进行打包上传到 Linux 服务器来简化这一步

tar -zcvf  anki-2.1.57-linux-qt5.tar.gz anki-2.1.57-linux-qt5

将重新压缩好的资源上传到 Linux 服务器并选择合适的目录进行解压,解压完成后进入项目根目录

运行同步服务器

输入以下指令测试 Anki 服务器是否成功启动

SYNC_USER1=YourUsername:YourPassword ./anki-2.1.57-linux-qt5/anki --syncserver

如果弹出以下内容则证明服务器启动成功

INFO listening addr=0.0.0.0:8080

待打开对应端口的防火墙后测试服务器是否能正常连接

启动 Anki 客户端 —— 在客户端打开设置 —— 网络 —— 输入你的服务器ip+端口

保存后尝试使用 SYNC_USER1 里面的账号与密码进行登录

如果登录成功则私人同步服务器运行成功

使用守护进程持久运行

考虑到同步服务器需要在服务器后台保持常驻,所以我们使用PM2进行进程守护:

//ecosyste.config.js
module.exports = {
apps: [{
name: "anki-server",
script: "./anki-2.1.57-linux-qt5/anki --syncserver",
env: {
SYNC_PORT: 8080,
SYNC_USER1: "YourUsername:YourPassword",
},
out_file: "./logs/anki-server.log",
}]
}

ecosyste.config.js 文件放到 anki 服务器文件根目录,并输入以下指令启动

pm2 start ecosyste.config.js

这样我们的 Anki 私人同步服务器就部署完成了。

使用域名作为地址

如果你想要用域名作为地址你可以使用 nginx 进行代理转发

    server {
listen 443 ssl;
server_name yourdomain.com;
root html;
index index.html index.htm;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
评论
0条评论

添加新评论

昵称
邮箱
网址